সি# এ ডেটাবেস কানেক্টিভিটি খুবই গুরুত্বপূর্ণ, বিশেষ করে যখন অ্যাপ্লিকেশনকে ডেটা সংরক্ষণ বা পুনরুদ্ধারের জন্য ডেটাবেসের সাথে সংযুক্ত করতে হয়। সি# এ ডেটাবেস কানেক্টিভিটির জন্য সাধারণত ADO.NET এবং Entity Framework ব্যবহৃত হয়। ADO.NET এ SqlConnection
, SqlCommand
, SqlDataAdapter
, এবং অন্যান্য ক্লাসের মাধ্যমে SQL সার্ভারের সাথে সংযোগ স্থাপন করা হয়।
ADO.NET একটি ডেটা অ্যাক্সেস প্রযুক্তি, যা .NET ফ্রেমওয়ার্কের অংশ এবং SQL সার্ভার, Oracle, এবং অন্যান্য ডেটাবেসের সাথে সংযোগ স্থাপন করতে ব্যবহৃত হয়।
নিচে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে SQL Server ডেটাবেসের সাথে সংযোগ স্থাপন করে ডেটা পড়া হয়েছে।
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
// ডাটাবেস কানেকশন স্ট্রিং
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Connection successful!");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
SqlCommand command = new SqlCommand(query, connection);
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("ID: " + reader["ID"] + ", Name: " + reader["Name"]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
SELECT
কুয়েরি SqlCommand
ব্যবহার করে এক্সিকিউট করা হয়েছে।ExecuteReader
মেথড ব্যবহার করে SqlDataReader
এর মাধ্যমে ডেটা পড়া হয়েছে।using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "INSERT INTO Employees (Name, Age) VALUES (@Name, @Age)";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Name", "John Doe");
command.Parameters.AddWithValue("@Age", 30);
try
{
connection.Open();
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("Rows affected: " + rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
INSERT
, UPDATE
, এবং DELETE
এর মত কমান্ডের জন্য ব্যবহৃত হয়।string query = "UPDATE Employees SET Age = @Age WHERE Name = @Name";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Name", "John Doe");
command.Parameters.AddWithValue("@Age", 35);
ExecuteNonQuery()
ব্যবহার করে এই কমান্ড চালালে নির্দিষ্ট Name
এর জন্য Age
আপডেট হবে।
string query = "DELETE FROM Employees WHERE Name = @Name";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Name", "John Doe");
ExecuteNonQuery()
ব্যবহার করে এই কমান্ড চালালে নির্দিষ্ট Name
এর রেকর্ড মুছে যাবে।
Entity Framework (EF) একটি ORM (Object-Relational Mapping) টুল, যা ডেটাবেসের টেবিলকে সি# ক্লাস হিসেবে মডেল করে এবং SQL কোয়েরি লেখার প্রয়োজন ছাড়াই ডেটা পরিচালনা করতে সহায়তা করে।
প্রথমে Entity Framework প্যাকেজ ইনস্টল করুন:
Install-Package EntityFramework
public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class MyDbContext : DbContext
{
public DbSet Employees { get; set; }
}
using (var context = new MyDbContext())
{
var employee = new Employee
{
Name = "John Doe",
Age = 30
};
context.Employees.Add(employee);
context.SaveChanges();
}
using (var context = new MyDbContext())
{
var employees = context.Employees.ToList();
foreach (var employee in employees)
{
Console.WriteLine("ID: " + employee.ID + ", Name: " + employee.Name);
}
}
মেথড | ব্যবহার |
---|---|
SqlConnection | ডেটাবেসে সংযোগ স্থাপন ও বন্ধ করা |
SqlCommand | SQL কুয়েরি বা কমান্ড চালানো |
SqlDataReader | ডেটা পড়া |
SqlDataAdapter | ডেটা আপডেট করা বা একাধিক রেকর্ড পড়া |
Entity Framework | ORM টুল, যেটি ডেটাবেসকে অবজেক্ট হিসেবে ব্যবহার করতে দেয় |
সি# এ ডেটাবেস কানেক্টিভিটির মাধ্যমে প্রোগ্রামের জন্য ডেটা ম্যানেজমেন্ট সহজ হয় এবং বিভিন্ন ডেটাবেস থেকে ডেটা সংগ্রহ, সংরক্ষণ, আপডেট, এবং মুছে ফেলার কাজ সম্পন্ন করা যায়। ADO.NET সরাসরি SQL সার্ভারের সাথে কাজ করে, আর Entity Framework ডেটাবেসকে অবজেক্ট হিসেবে ব্যবহার করে উন্নতমানের ডেটা ম্যানেজমেন্ট সিস্টেম প্রদান করে।
ADO.NET সি# এ ডেটাবেস সংযোগ করার জন্য একটি জনপ্রিয় টুল, যা ডেটাবেসের সাথে ডেটা রিট্রিভ, ইনসার্ট, আপডেট এবং ডিলিট করার জন্য ব্যবহৃত হয়। ADO.NET মূলত System.Data নেমস্পেসের অধীনে ডেটাবেস সংক্রান্ত ক্লাস, ইন্টারফেস এবং কনেকশন স্ট্রিংগুলো সরবরাহ করে।
ADO.NET দিয়ে ডেটাবেস কানেকশন তৈরি করতে প্রথমে একটি কনেকশন স্ট্রিং প্রয়োজন হয়, যা সার্ভারের সাথে যোগাযোগ করার জন্য প্রয়োজনীয় তথ্য ধারণ করে।
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
নিচে একটি ADO.NET ব্যবহার করে SQL Server ডেটাবেসে সংযোগ স্থাপন, ডেটা ইনসার্ট, রিড এবং আপডেটের উদাহরণ দেওয়া হলো।
using System;
using System.Data;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
// কানেকশন স্ট্রিং
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
// কানেকশন তৈরি
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Database connected successfully.");
// SQL কমান্ড
string query = "SELECT * FROM Students";
// কমান্ড তৈরি
SqlCommand command = new SqlCommand(query, connection);
// DataReader দিয়ে ডেটা পড়া
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine("ID: " + reader["ID"] + ", Name: " + reader["Name"] + ", Age: " + reader["Age"]);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
SELECT
স্টেটমেন্ট ব্যবহার করে ডেটা রিড করার জন্য SQL কমান্ড তৈরি করা হয়েছে।ExecuteReader()
মেথড দিয়ে DataReader তৈরি করা হয়েছে, যা ডেটা রিড করে প্রতিটি রেকর্ড প্রিন্ট করে।using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
// SQL ইনসার্ট কমান্ড
string query = "INSERT INTO Students (Name, Age) VALUES (@Name, @Age)";
SqlCommand command = new SqlCommand(query, connection);
// প্যারামিটার সেট করা
command.Parameters.AddWithValue("@Name", "John Doe");
command.Parameters.AddWithValue("@Age", 21);
// ExecuteNonQuery দিয়ে ডেটা ইনসার্ট করা
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) inserted.");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
// SQL আপডেট কমান্ড
string query = "UPDATE Students SET Age = @Age WHERE Name = @Name";
SqlCommand command = new SqlCommand(query, connection);
// প্যারামিটার সেট করা
command.Parameters.AddWithValue("@Age", 22);
command.Parameters.AddWithValue("@Name", "John Doe");
// ExecuteNonQuery দিয়ে ডেটা আপডেট করা
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) updated.");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
// SQL ডিলিট কমান্ড
string query = "DELETE FROM Students WHERE Name = @Name";
SqlCommand command = new SqlCommand(query, connection);
// প্যারামিটার সেট করা
command.Parameters.AddWithValue("@Name", "John Doe");
// ExecuteNonQuery দিয়ে ডেটা ডিলিট করা
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) deleted.");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
ADO.NET ব্যবহার করে সি# এ ডেটাবেস সংযোগ তৈরি করে ডেটাবেস অপারেশনগুলো সম্পন্ন করা সহজ এবং কার্যকরী হয়।
সি# এ SqlConnection, SqlCommand, এবং SqlDataReader হলো ADO.NET লাইব্রেরির প্রধান উপাদান, যা ডেটাবেস কানেক্টিভিটির জন্য ব্যবহৃত হয়। এগুলোর মাধ্যমে SQL Server ডেটাবেসের সাথে সংযোগ স্থাপন, কুয়েরি এক্সিকিউট করা এবং ডেটা রিড করা সম্ভব হয়।
SqlConnection ক্লাসটি ডেটাবেসের সাথে সংযোগ স্থাপন এবং বন্ধ করার জন্য ব্যবহৃত হয়। SqlConnection
এর মাধ্যমে একটি নির্দিষ্ট ডেটাবেসে কানেক্ট করা সম্ভব হয়, যেখানে কানেকশন স্ট্রিং ব্যবহার করে ডেটাবেসের সার্ভার, ডাটাবেজ নাম, ইউজার এবং পাসওয়ার্ড নির্ধারণ করা হয়।
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Connection established successfully!");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
using
ব্লকের বাইরে গেলে স্বয়ংক্রিয়ভাবে সংযোগ বন্ধ হয়ে যায়।SqlCommand ক্লাসটি SQL কুয়েরি বা কমান্ড এক্সিকিউট করার জন্য ব্যবহৃত হয়। এর মাধ্যমে SELECT
, INSERT
, UPDATE
, DELETE
প্রভৃতি SQL স্টেটমেন্ট চালানো যায়।
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "INSERT INTO Employees (Name, Age) VALUES (@Name, @Age)";
SqlCommand command = new SqlCommand(query, connection);
// প্যারামিটার সেট করা হচ্ছে
command.Parameters.AddWithValue("@Name", "John Doe");
command.Parameters.AddWithValue("@Age", 30);
try
{
connection.Open();
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("Rows affected: " + rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
SqlCommand
অবজেক্ট query
এবং connection
প্যারামিটার নিয়ে তৈরি করা হয়েছে।INSERT
, UPDATE
, এবং DELETE
এর মত কমান্ডের জন্য ব্যবহৃত, যা প্রভাবিত রেকর্ডের সংখ্যা প্রদান করে।SqlDataReader ক্লাসটি ডেটাবেস থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়। এটি সাধারণত SELECT
কুয়েরির সাথে ব্যবহৃত হয় এবং রিড-ওনলি (শুধুমাত্র পড়ার জন্য) এবং ফরোয়ার্ড-ওনলি (অগ্রসর মান) ডেটা প্রদান করে। SqlDataReader
ডেটা রিড করার জন্য একটি দ্রুত ও কার্যকরী পদ্ধতি প্রদান করে।
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main()
{
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT ID, Name, Age FROM Employees";
SqlCommand command = new SqlCommand(query, connection);
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("ID: " + reader["ID"]);
Console.WriteLine("Name: " + reader["Name"]);
Console.WriteLine("Age: " + reader["Age"]);
Console.WriteLine("--------------------");
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
SELECT
কুয়েরি চালানোর জন্য ব্যবহৃত, যা SqlDataReader
অবজেক্ট প্রদান করে।ColumnName
হলো ডেটাবেসের কলামের নাম।ExecuteScalar: একটি একক মান (প্রথম কলাম এবং প্রথম রো) রিটার্ন করতে ব্যবহার করা হয়।
string query = "SELECT COUNT(*) FROM Employees";
SqlCommand command = new SqlCommand(query, connection);
int count = (int)command.ExecuteScalar();
Console.WriteLine("Total Employees: " + count);
ExecuteNonQuery: INSERT
, UPDATE
, এবং DELETE
এর মত স্টেটমেন্ট এক্সিকিউট করতে ব্যবহৃত হয় এবং প্রভাবিত রো সংখ্যা প্রদান করে।
string query = "DELETE FROM Employees WHERE ID = @ID";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@ID", 1);
int rowsDeleted = command.ExecuteNonQuery();
Console.WriteLine("Rows deleted: " + rowsDeleted);
ক্লাস | ব্যবহার |
---|---|
SqlConnection | ডেটাবেসের সাথে সংযোগ স্থাপন এবং বন্ধ করা |
SqlCommand | SQL কুয়েরি চালানো, যেমন SELECT , INSERT , UPDATE , DELETE |
SqlDataReader | ডেটাবেস থেকে রিড-ওনলি এবং ফরোয়ার্ড-ওনলি ডেটা পড়া |
SqlConnection ডেটাবেসের সাথে সংযোগ স্থাপন করে, SqlCommand এর মাধ্যমে SQL স্টেটমেন্ট এক্সিকিউট করা হয় এবং SqlDataReader এর মাধ্যমে ডেটা পড়া হয়। সি# এ ADO.NET ব্যবহার করে এই ক্লাসগুলো দিয়ে সহজেই ডেটাবেসের সাথে ইন্টারঅ্যাকশন করা যায়, যা ডেটাবেস পরিচালনা সহজ করে তোলে।
CRUD অপারেশন হলো ডেটাবেসের সাথে কাজ করার সময় সবচেয়ে সাধারণ চারটি অপারেশন, যা Create, Read, Update, এবং Delete এর সংক্ষিপ্ত রূপ। এই অপারেশনগুলো ডেটাবেস টেবিলে রেকর্ড তৈরি, পড়া, আপডেট এবং মুছে ফেলার জন্য ব্যবহৃত হয়। নিচে ADO.NET ব্যবহার করে C# এ CRUD অপারেশনের উদাহরণ দেওয়া হলো।
নিচের SQL কোডটি ব্যবহার করে একটি Students টেবিল তৈরি করুন:
CREATE TABLE Students (
ID INT PRIMARY KEY IDENTITY,
Name NVARCHAR(50),
Age INT
);
প্রজেক্টে ডেটাবেসের সাথে সংযোগ করার জন্য একটি কনেকশন স্ট্রিং প্রয়োজন। নিচের মতো একটি কনেকশন স্ট্রিং তৈরি করুন:
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using System;
using System.Data.SqlClient;
public class Program
{
public static void CreateStudent(string name, int age)
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "INSERT INTO Students (Name, Age) VALUES (@Name, @Age)";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Name", name);
command.Parameters.AddWithValue("@Age", age);
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) inserted.");
}
}
public static void Main()
{
CreateStudent("John Doe", 20);
}
}
using System;
using System.Data.SqlClient;
public class Program
{
public static void ReadStudents()
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM Students";
SqlCommand command = new SqlCommand(query, connection);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine("ID: " + reader["ID"] + ", Name: " + reader["Name"] + ", Age: " + reader["Age"]);
}
}
}
}
public static void Main()
{
ReadStudents();
}
}
using System;
using System.Data.SqlClient;
public class Program
{
public static void UpdateStudent(int id, string name, int age)
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "UPDATE Students SET Name = @Name, Age = @Age WHERE ID = @ID";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@ID", id);
command.Parameters.AddWithValue("@Name", name);
command.Parameters.AddWithValue("@Age", age);
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) updated.");
}
}
public static void Main()
{
UpdateStudent(1, "Jane Doe", 25);
}
}
ID
অনুসারে নির্দিষ্ট রেকর্ড আপডেট করা হয়েছে।using System;
using System.Data.SqlClient;
public class Program
{
public static void DeleteStudent(int id)
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "DELETE FROM Students WHERE ID = @ID";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@ID", id);
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) deleted.");
}
}
public static void Main()
{
DeleteStudent(1);
}
}
ID
অনুসারে নির্দিষ্ট রেকর্ড ডিলিট করা হয়েছে।INSERT INTO
স্টেটমেন্ট দিয়ে নতুন ডেটা টেবিলে যোগ করা।SELECT * FROM
স্টেটমেন্ট দিয়ে টেবিলের ডেটা পড়া।UPDATE
স্টেটমেন্ট দিয়ে টেবিলের নির্দিষ্ট ডেটা আপডেট করা।DELETE FROM
স্টেটমেন্ট দিয়ে টেবিল থেকে নির্দিষ্ট ডেটা ডিলিট করা।এভাবে ADO.NET ব্যবহার করে সি# প্রোগ্রামে CRUD অপারেশন সম্পন্ন করা যায়, যা ডেটাবেস ভিত্তিক অ্যাপ্লিকেশন তৈরি করতে সহায়ক।
Entity Framework (EF) হলো একটি Object-Relational Mapping (ORM) টুল, যা সি# প্রোগ্রামিং ভাষায় ডেটাবেস পরিচালনা করতে ব্যবহার করা হয়। এটি ডেটাবেসের টেবিলগুলিকে সি# অবজেক্ট হিসেবে ব্যবহার করতে দেয় এবং ডেটা ম্যানিপুলেশন আরও সহজ করে তোলে। Entity Framework ব্যবহার করলে সরাসরি SQL কুয়েরি লেখার প্রয়োজন হয় না; এটি ডেটাবেস অপারেশনের জন্য C# কোডে উচ্চ স্তরের (high-level) মেথড প্রদান করে।
Entity Framework তিনটি পদ্ধতিতে কাজ করতে পারে:
Entity Framework ব্যবহার করতে হলে প্রথমে NuGet Package Manager ব্যবহার করে Entity Framework ইনস্টল করতে হবে।
Install-Package EntityFramework
Code-First পদ্ধতিতে প্রথমে একটি C# মডেল ক্লাস তৈরি করা হয়, যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে।
public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
এখানে, Employee
নামের ক্লাসটি একটি টেবিল হিসেবে ব্যবহৃত হবে এবং এর ID
, Name
, এবং Age
প্রপার্টিগুলো টেবিলের কলাম হিসেবে কাজ করবে।
DbContext
ক্লাস Entity Framework এর মূল কাঠামো, যা ডাটাবেস অপারেশন পরিচালনা করে। এতে ডেটাবেস টেবিলের জন্য DbSet
ব্যবহার করা হয়।
using System.Data.Entity;
public class MyDbContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
}
Entity Framework এর মাধ্যমে CRUD (Create, Read, Update, Delete) অপারেশন করা খুবই সহজ।
using (var context = new MyDbContext()) { var employee = new Employee { Name = "John Doe", Age = 30 }; context.Employees.Add(employee); context.SaveChanges(); }
using (var context = new MyDbContext())
{
var employees = context.Employees.ToList();
foreach (var employee in employees)
{
Console.WriteLine("ID: " + employee.ID + ", Name: " + employee.Name);
}
}
using (var context = new MyDbContext())
{
var employee = context.Employees.FirstOrDefault(e => e.ID == 1);
if (employee != null)
{
employee.Age = 35;
context.SaveChanges();
}
}
using (var context = new MyDbContext())
{
var employee = context.Employees.FirstOrDefault(e => e.ID == 1);
if (employee != null)
{
context.Employees.Remove(employee);
context.SaveChanges();
}
}
Entity Framework LINQ (Language-Integrated Query) সমর্থন করে, যা SQL কুয়েরির মতো কাজ করে।
using (var context = new MyDbContext())
{
var employees = context.Employees
.Where(e => e.Age > 25)
.OrderBy(e => e.Name)
.ToList();
foreach (var employee in employees)
{
Console.WriteLine("Name: " + employee.Name + ", Age: " + employee.Age);
}
}
Database-First পদ্ধতিতে, প্রথমে একটি বিদ্যমান ডাটাবেস থেকে মডেল তৈরি করা হয়। Visual Studio এ Database-First পদ্ধতি ব্যবহার করার ধাপগুলো নিচে দেওয়া হলো:
Entity Framework স্বয়ংক্রিয়ভাবে ক্লাস এবং DbContext তৈরি করে দেয়।
বৈশিষ্ট্য | ব্যবহার |
---|---|
Code-First | প্রথমে কোড লিখে ডেটাবেস তৈরি করা |
Database-First | প্রথমে ডাটাবেস থেকে মডেল তৈরি করা |
CRUD অপারেশন | Add, Read, Update, এবং Delete সহজে সম্পন্ন করা যায় |
LINQ সমর্থন | ডেটার উপর কোয়েরি চালাতে LINQ ব্যবহার করা যায় |
Entity Framework ব্যবহারে সি# ডেভেলপাররা খুব সহজে ডেটাবেস পরিচালনা করতে পারে, কোড ফার্স্ট ও ডেটাবেস ফার্স্ট পদ্ধতিতে ডেটা ম্যানেজমেন্ট আরো সহজ হয় এবং LINQ এর মাধ্যমে জটিল কুয়েরিগুলো সহজে করা সম্ভব।
আরও দেখুন...